class_name Library_Tool
extends Object

# 解释：这是是静态函数库的脚本，该脚本不需要加载，因为当通过类名访问静态函数时，已经进行隐性加载了
# 提示：函数名尽量使用小写和下划线

## 生成默认32位字符串，包含字母大小写
static func generate_random_string(length: int = 32) -> String:
	var characters = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789"
	var result = ""
	# 初始化随机数生成器
	randomize()
	# 循环生成长度为length的随机字符串
	for i in range(length):
		var random_index = randi() % characters.length()
		result += characters[random_index]
	return result

## 生成默认32位字符串，字母大写
static func generate_random_string_upper(length: int = 32) -> String:
	var characters = "ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789"
	var result = ""
	# 初始化随机数生成器
	randomize()
	# 循环生成长度为length的随机字符串
	for i in range(length):
		var random_index = randi() % characters.length()
		result += characters[random_index]
	return result

## 生成默认32位字符串，字母小写
static func generate_random_string_lower(length: int = 32) -> String:
	var characters = "abcdefghijklmnopqrstuvwxyz0123456789"
	var result = ""
	# 初始化随机数生成器
	randomize()
	# 循环生成长度为length的随机字符串
	for i in range(length):
		var random_index = randi() % characters.length()
		result += characters[random_index]
	return result

## 获取当前设备唯一ID,默认小写
static func get_device_id(upper : bool = false) -> String:
	# 获取唯一ID并转换为字符串
	var uuid = OS.get_unique_id()
	# 移除"- { }"获得纯32位字符串
	uuid = uuid.replace("-", "")
	uuid = uuid.replace("{", "")
	uuid = uuid.replace("}", "")
	# 确保字符串长度为32（通常不需要，但为了安全起见）
	while uuid.length() < 32:
		# 前置补零
		uuid = "0" + uuid
	# 截取前32个字符（通常不需要，但为了安全起见）
	uuid = uuid.left(32)
	if upper :
		uuid = uuid.to_upper()
	return uuid
